import java.awt.desktop.SystemEventListener;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA
 * Description
 * Data: 2025-10-15
 */
public class Test {
    public static void main0(String[] args) {
        int score = 60;
        if(score >= 90) {
            System.out.println("优秀");
        }else if(score >= 80 && score < 90) {
            System.out.println("良好");
        }else if(score >= 70 && score < 80) {
            System.out.println("中等");
        }else if (score >= 60 && score < 70) {
            System.out.println("及格");
        }else {
            System.out.println("不及格");
        }
    }

    //判断一个数是奇数还是偶数
    public static void main1(String[] args) {
        int a = 10;
        if(a % 2 == 0) {
            System.out.println("偶数");
        }else {
            System.out.println("奇数");
        }
    }

    //判断一个年份是否为闰年
    public static void main2(String[] args) {
        int year = 2000;
       /* if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
            System.out.println("闰年");
        }else {
            System.out.println("平年");
        }*/

        if(year % 400 == 0) {
            System.out.println("世纪闰年");
        }else {
            if(year % 4 == 0 && year % 100 != 0) {
                System.out.println("普通闰年");
            }else {
                System.out.println("平年");
            }
        }
    }

    public static void main3(String[] args) {
        int a = 10;
        switch (a) {
            case 1:
                System.out.println(1);
                break;
            case 2:
                System.out.println(2);
                break;
            case 3:
                System.out.println(3);
                break;
            default:
                System.out.println("出错了");
                break;
        }
    }

    //switch可以接收的类型有：'char, byte, short, int, Character, Byte, Short, Integer, String, or an enum'
    //                     字符型 字节型  短整型  整型
    public static void main4(String[] args) {
        Long a = 10L; //必须加上L代表长整型
        /*switch (a){
            //这是错误的，switch可以接收的变量类型不能为long类型的
        }*/
    }

    //java新语法中swich
    public static void main5(String[] args) {
        int day = 3;
        //当switch作为表达式（直接返回结果）时，必须用变量接收或作为方法返回值
        String dayName = switch (day) {
            case 1 -> "星期一";
            case 2 -> "星期二";
            case 3 -> "星期三";
            default -> "周末";
        };
        System.out.println(dayName); // 输出：星期三

        //若仅执行操作而不返回结果（类似传统swich），则无需接收
        int a = 10;
        switch (a) {
            case 1 -> System.out.println("hh");
            default -> System.out.println("xixi");
        }

        //单case可能匹配多个值，复杂逻辑可用代码块配合yield返回值
        int x = 3;
        String ret = switch (x) {
            case 12,1,2 -> "冬季";
            case 3,4,5 -> {
                System.out.println("春季活动开始");
                yield "春季";
            }
            default -> "无效月份";  //不可以省略，在旧语法中可以被省略，新语法中switch可作为表达式直接赋值，需覆盖所有可能值（或提供 default）
        };
        System.out.println(ret);
    }


    //循环结构
    public static void main6(String[] args) {
        int a = 10;
        while(a > 0) {
            System.out.println(a);
            a--;
        }
    }

    //计算5的阶层
    public static void main7(String[] args) {
        int i = 1;
        int fib = 1;
        while (i <= 5) {
            fib = fib * i;
            i++;
        }
        System.out.println(fib);
    }

    //计算1到5的阶层
    public static void main8(String[] args) {
        int x = 1;
        int sum = 0;
        while(x < 6) {
            int y = 1;
            int ret = 1;
            while(y <= x) {
                ret *= y;
                y++;
            }
            sum += ret;
            x++;
        }
        System.out.println(sum);
    }

    //break：找到100到200中第一个3的倍数
    public static void main9(String[] args) {
        int i = 100;
        while(i <= 200) {
            if(i % 3 == 0) {
                System.out.println(i);
                break;
            }
            i++;
        }
    }

    //continue:找到100到200中所有3的倍数
    public static void main10(String[] args) {
        int i = 100;
        while(i <= 200) {
            if(i % 3 != 0) {
                i++;
                continue;
            }
            System.out.println(i);
            i++;
        }
    }


    //for循环
    public static void main11(String[] args) {
        int i = 0;
        for(i = 1;i <= 10;i++) {
            System.out.println(i);
        }
    }

    //判断一个数是否为素数，即只有1和他本身
    public static void main12(String[] args) {
        int i = 16;
        int j = 0;
        for (j = 2; j <= Math.sqrt(i); j++) {
            if(i % j == 0) {
                System.out.println(i + "不是素数");
                break;
            }
        }
        if(j > Math.sqrt(i)) {
            System.out.println(i + "是素数");
        }
    }

    //switch练习1：星期几输出
    public static void main13(String[] args) {
        Scanner x = new Scanner(System.in);
        int input = x.nextInt();
        switch (input) {
            case 1 -> System.out.println("星期一");
            case 2 -> System.out.println("星期二");
            case 3 -> System.out.println("星期三");
            case 4 -> System.out.println("星期四");
            case 5 -> System.out.println("星期五");
            case 6 -> System.out.println("星期六");
            case 7 -> System.out.println("星期天");
            default -> System.out.println("输入错误");  //在这里是可以省略defaul并且不会报错，如果存在接收返回值的情况必须有default如下面
        }
    }

    public static void main14(String[] args) {
        Scanner x = new Scanner(System.in);
        int input = x.nextInt();
        String day = switch (input) {
            case 1 -> "星期一";
            case 2 -> "星期二";
            case 3 -> "星期三";
            case 4 -> "星期四";
            case 5 -> "星期五";
            case 6 -> "星期六";
            case 7 -> "星期天";
            default -> "输入错误";
        };
        System.out.println(day);
    }

    //编写一个简单计算器程序，接受用户输入的两个数字和一个运算符（+, -, *, /）。
    // 使用 switch 语句根据运算符执行相应的计算，并输出结果。如果运算符不是支持的字符，输出“不支持的操作符”。
    public static void main15(String[] args) {
        Scanner x = new Scanner(System.in);
        int num1 = x.nextInt();
        int num2 = x.nextInt();
        char cal = x.next().charAt(0);
        int ret = switch (cal) {
            case '*' -> num1 * num2;
            case '/' -> num1 / num2;
            case '+' -> num1 + num2;
            case '-' -> num1 - num2;
            default -> -1;
        };
        System.out.println(ret);
    }


    //求出0——999之间所有的水仙花数
    public static void main16(String[] args) {
        for (int i = 0; i < 10000; i++) {
            int sum = 0;
            int j = i;

            //先求当前位数是几位数
            int count = 0;
            while(j != 0) {
                count++;
                j = j / 10;
            }

            //求次方
            j = i;
            while(j != 0) {
                sum += Math.pow(j % 10 , count);
                j = j / 10;
            }

            if(sum == i) {
                System.out.println(i);
            }
        }
    }


    //输出1-100的所有整数出现多少个数字9
    public static void main17(String[] args) {
        int count = 0;
        for (int i = 0; i < 101; i++) {
            int tmp = i;
            while(tmp != 0) {
                if(tmp % 10 == 9) {
                    count++;
                }
                tmp = tmp / 10;
            }
        }
        System.out.println(count);
    }


    //求两个数的最小公约数
    public static void main18(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();

        int c = a % b;
        while(c != 0) {
            a = b;
            b = c;
            c = a % b;
        }
        System.out.println(b);
    }

    //计算1 - 1/2 + 1/3 -1/4.。。。+1/99-1/100
    public static void main19(String[] args) {
        int i = 1;
        double x = 1.0;

        double sum = 0;
        for (int j = 1; j <= 100; j++) {
            sum += i * (x / j);
            i = -i;
        }
        System.out.println(sum);
    }

    //输入x图形
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int x = scanner.nextInt();
        for (int i = 0; i < x; i++) {
            for (int j = 0; j < x; j++) {
                if(i == j) {
                    System.out.print("*");
                }else if (i + j == x - 1) {
                    System.out.print("*");
                }else {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }
}
